package pe.gob.sunarp.entidad;

import java.io.Serializable;
import javax.persistence.*;
import java.util.Set;


/**
 * The persistent class for the TM_LIBRO database table.
 * 
 */
@Entity
@Table(name="TM_LIBRO")
public class TmLibro implements Serializable {
	private static final long serialVersionUID = 1L;
	private String codLibro;
	private String descripcion;
	private String descripcionArea;
	private String estado;
	private Set<TmCertificado> tmCertificados;
	private Set<TmGrupo> tmGrupos;
	private Set<ParticLibro> particLibros;
	private Set<Partida> partidas;
	private Set<TmLetraRubro> tmLetraRubros;
	private TmAreaRegistral tmAreaRegistral;

    public TmLibro() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="COD_LIBRO", unique=true, nullable=false, length=3)
	public String getCodLibro() {
		return this.codLibro;
	}

	public void setCodLibro(String codLibro) {
		this.codLibro = codLibro;
	}


	@Column(nullable=false, length=120)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}


	@Column(name="DESCRIPCION_AREA", length=120)
	public String getDescripcionArea() {
		return this.descripcionArea;
	}

	public void setDescripcionArea(String descripcionArea) {
		this.descripcionArea = descripcionArea;
	}


	@Column(nullable=false, length=1)
	public String getEstado() {
		return this.estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}


	//bi-directional many-to-many association to TmCertificado
	@ManyToMany(mappedBy="tmLibros")
	public Set<TmCertificado> getTmCertificados() {
		return this.tmCertificados;
	}

	public void setTmCertificados(Set<TmCertificado> tmCertificados) {
		this.tmCertificados = tmCertificados;
	}
	

	//bi-directional many-to-many association to TmGrupo
    @ManyToMany
	@JoinTable(
		name="GRUPO_LIBRO"
		, joinColumns={
			@JoinColumn(name="COD_LIBRO", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="GRUPO_ID", nullable=false)
			}
		)
	public Set<TmGrupo> getTmGrupos() {
		return this.tmGrupos;
	}

	public void setTmGrupos(Set<TmGrupo> tmGrupos) {
		this.tmGrupos = tmGrupos;
	}
	

	//bi-directional many-to-one association to ParticLibro
	@OneToMany(mappedBy="tmLibro")
	public Set<ParticLibro> getParticLibros() {
		return this.particLibros;
	}

	public void setParticLibros(Set<ParticLibro> particLibros) {
		this.particLibros = particLibros;
	}
	

	//bi-directional many-to-one association to Partida
	@OneToMany(mappedBy="tmLibro")
	public Set<Partida> getPartidas() {
		return this.partidas;
	}

	public void setPartidas(Set<Partida> partidas) {
		this.partidas = partidas;
	}
	

	//bi-directional many-to-one association to TmLetraRubro
	@OneToMany(mappedBy="tmLibro")
	public Set<TmLetraRubro> getTmLetraRubros() {
		return this.tmLetraRubros;
	}

	public void setTmLetraRubros(Set<TmLetraRubro> tmLetraRubros) {
		this.tmLetraRubros = tmLetraRubros;
	}
	

	//bi-directional many-to-one association to TmAreaRegistral
    @ManyToOne
	@JoinColumn(name="AREA_REG_ID", nullable=false)
	public TmAreaRegistral getTmAreaRegistral() {
		return this.tmAreaRegistral;
	}

	public void setTmAreaRegistral(TmAreaRegistral tmAreaRegistral) {
		this.tmAreaRegistral = tmAreaRegistral;
	}
	
}